package com.cool4j.generator.util;

import org.apache.commons.lang3.StringUtils;

/**
 * 字符串操作工具类
 *
 * @author Frank create on 16/1/8 16:34
 */
public class StringUtil {

    /**
     * 字符串首字母小写
     *
     * @param str - 原字符串
     * @return - 首字母小写字符串
     */
    public static String firstLower(String str) {
        return StringUtils.uncapitalize(str);
    }

    /**
     * 字符串首字母大写
     *
     * @param str - 原字符串
     * @return - 首字母大写字符串
     */
    public static String firstUpper(String str) {
        return StringUtils.capitalize(str);
    }

    /**
     * 获取字段的 get/set 方法名
     *
     * @param fieldName - 字段名
     * @return - get/set 方法名
     */
    public static String getSetMethodName(String fieldName, int type) {
        if (StringUtils.isBlank(fieldName)) {
            return "";
        }

        switch (type) {
            case 0 : return "get" + firstUpper(fieldName);
            case 1 : return "set" + firstUpper(fieldName);
        }

        return "";
    }

    /**
     * 字符串下划线格式转为驼峰格式
     *
     * @param str - 下划线格式字符串
     * @return - 驼峰格式字符串
     */
    public static String underlineToHump(String str) {
        if (StringUtils.isBlank(str)) {
            return "";
        } else {
            int position;
            while (str.indexOf("_") > 0 ) {
                position = str.indexOf("_");
                if (position < str.length() - 1) {
                    str = str.substring(0, position) + firstUpper(str.substring(position + 1));
                } else {
                    str = str.replace("_", "");
                }
            }
        }
        return str;
    }

}
